jsapi hb

Kimi.Huang 6 years ago
parent
commit
fe4884f1b9
2 changed files with 39 additions and 0 deletions
  1. 3 0
      api/urls.py
  2. 36 0
      miniapp/redpack_views.py

+ 3 - 0
api/urls.py

@@ -182,7 +182,10 @@ urlpatterns += [
182 182
     url(r'^mini/userinfo$', mini_views.get_userinfo_api, name='get_userinfo_api'),  # 获取用户信息
183 183
     url(r'^mini/login$', mini_views.mini_login_api, name='mini_login_api'),  # 小程序登录
184 184
     url(r'^mini/userinfo2$', mini_views.get_userinfo_api2, name='get_userinfo_api2'),  # 获取用户信息
185
+]
185 186
 
187
+urlpatterns += [
188
+    url(r'^jsapi/hb$', redpack_views.jsapi_hb_api, name='jsapi_hb_api'),  # JSAPI红包
186 189
     url(r'^mini/hb$', redpack_views.mini_hb_api, name='mini_hb_api'),  # 小程序红包
187 190
 ]
188 191
 

+ 36 - 0
miniapp/redpack_views.py

@@ -10,6 +10,42 @@ from account.models import UserInfo
10 10
 WECHAT = settings.WECHAT
11 11
 
12 12
 
13
+def jsapi_hb_api(request):
14
+    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
15
+    user_id = request.POST.get('user_id', '')
16
+    transfer = request.POST.get('transfer', '')
17
+
18
+    try:
19
+        user = UserInfo.objects.get(user_id=user_id)
20
+    except UserInfo.DoesNotExist:
21
+        return response()
22
+
23
+    openid = user.openid
24
+    amount = 100
25
+
26
+    trade_type = 'JSAPI'
27
+    # 根据 trade_type 获取 wechat 配置
28
+    wxcfg = WECHAT.get(trade_type, {})
29
+    # WeChatPay 初始化
30
+    wxpay = WeChatPay(wxcfg.get('appID'), wxcfg.get('apiKey'), wxcfg.get('mchID'), mch_cert=wxcfg.get('mch_cert'), mch_key=wxcfg.get('mch_key'))
31
+
32
+    if transfer:
33
+        ret_data = wxpay.transfer.transfer(openid, amount, u'企业付款', check_name='NO_CHECK')
34
+    else:
35
+        wxrpk = wxcfg.get('redpack', {})
36
+        ret_data = wxpay.redpack.send(
37
+            openid,
38
+            amount,
39
+            send_name=wxrpk.get('SEND_NAME'),
40
+            act_name=wxrpk.get('ACT_NAME'),
41
+            wishing=wxrpk.get('WISHING'),
42
+            remark=wxrpk.get('REMARK'),
43
+            miniprogram=False,
44
+        )
45
+
46
+    return response(200, data=ret_data)
47
+
48
+
13 49
 def mini_hb_api(request):
14 50
     brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
15 51
     user_id = request.POST.get('user_id', '')